package ee.subjects.backend.model.dao.factory;

import java.sql.Connection;

import ee.subjects.backend.model.dao.AddressDAO;
import ee.subjects.backend.model.dao.ContactDAO;
import ee.subjects.backend.model.dao.CustomerDAO;
import ee.subjects.backend.model.dao.EmployeeDAO;
import ee.subjects.backend.model.dao.Employee_role_DAO;
import ee.subjects.backend.model.dao.EnterpriseDAO;
import ee.subjects.backend.model.dao.Enterprise_person_relation_DAO;
import ee.subjects.backend.model.dao.PersonDAO;
import ee.subjects.backend.model.dao.Struct_unit_DAO;
import ee.subjects.backend.model.dao.Subject_attribute_DAO;
import ee.subjects.backend.model.dao.Subject_attribute_type_DAO;
import ee.subjects.backend.model.dao.Subject_type_DAO;
import ee.subjects.backend.model.dao.User_account_DAO;
import ee.subjects.backend.model.dao.postgresqlimplementation.AddressDAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.ContactDAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.CustomerDAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.EmployeeDAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.Employee_role_DAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.EnterpriseDAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.Enterprise_person_relation_DAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.PersonDAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.Struct_unit_DAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.Subject_attribute_DAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.Subject_attribute_type_DAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.Subject_type_DAOPostgresImpl;
import ee.subjects.backend.model.dao.postgresqlimplementation.User_account_DAOPostgresImpl;

public class PostgreSQLDAOImplFactory extends DAOFactory
{
	@Override
	public AddressDAO getAddressDAOImpl(Connection dbConnection) 
	{
		return new AddressDAOPostgresImpl(dbConnection);
	}

	@Override
	public ContactDAO getContactDAOImpl(Connection dbConnection) 
	{
		return new ContactDAOPostgresImpl(dbConnection);
	}

	@Override
	public CustomerDAO getCustomerDAOImpl(Connection dbConnection) 
	{
		return new CustomerDAOPostgresImpl(dbConnection);
	}

	@Override
	public Employee_role_DAO getEmployee_role_DAOImpl(Connection dbConnection) 
	{
		return new Employee_role_DAOPostgresImpl(dbConnection);
	}

	@Override
	public EmployeeDAO getEmployeeDAOImpl(Connection dbConnection) 
	{
		return new EmployeeDAOPostgresImpl(dbConnection);
	}

	@Override
	public Enterprise_person_relation_DAO getEnterprise_person_relation_DAOImpl(Connection dbConnection) 
	{
		return new Enterprise_person_relation_DAOPostgresImpl(dbConnection);
	}

	@Override
	public EnterpriseDAO getEnterpriseDAOImpl(Connection dbConnection) 
	{
		return new EnterpriseDAOPostgresImpl(dbConnection);
	}

	@Override
	public PersonDAO getPersonDAOImpl(Connection dbConnection)
	{
		return new PersonDAOPostgresImpl(dbConnection);
	}

	@Override
	public Struct_unit_DAO getStruct_unit_DAOImpl(Connection dbConnection)
	{
		return new Struct_unit_DAOPostgresImpl(dbConnection);
	}

	@Override
	public Subject_attribute_DAO getSubject_attribute_DAOImpl(Connection dbConnection) 
	{
		return new Subject_attribute_DAOPostgresImpl(dbConnection);
	}

	@Override
	public Subject_attribute_type_DAO getSubject_attribute_type_DAOImpl(Connection dbConnection) 
	{
		return new Subject_attribute_type_DAOPostgresImpl(dbConnection);
	}

	@Override
	public Subject_type_DAO getSubject_type_DAOImpl(Connection dbConnection) 
	{
		return new Subject_type_DAOPostgresImpl(dbConnection);
	}

	@Override
	public User_account_DAO getUser_account_DAOImpl(Connection dbConnection) 
	{
		return new User_account_DAOPostgresImpl(dbConnection);
	}
}
